package com.software.levelupandroid.entity;

import java.io.Serializable;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * @Description 用户的实体类
 * @Author LiangYaJie
 * @CreateTime 2024年04月22日 16:00:04
 */

public class User implements Serializable {
    private Integer userId;
    private String username;
    private String password;
    private String email;
    private int gradeId;
    private Double experience;
    private String avatar;
    private String signature;
    private String sex;

    private Boolean enabled;
    private Boolean accountNoExpired;
    private Boolean credentialsNoExpired;
    private Boolean accountNoLocked;

    public User(Integer userId, String username, String avatar, String email) {
        this.userId = userId;
        this.username = username;
        this.avatar = avatar;
        this.email = email;
    }

    public User(String username, String password, String email) {
        this.username = username;
        this.password = password;
        this.email = email;
    }
    public User( String password, String email) {
        this.password = password;
        this.email = email;
    }

    public User() {
    }

    public User(Integer userId, String username, String email, int gradeId, String avatar, String signature, String sex) {
        this.userId = userId;
        this.username = username;
        this.email = email;
        this.gradeId = gradeId;
        this.avatar = avatar;
        this.signature = signature;
        this.sex = sex;
    }

    public User(Integer userId, String username, String password, String email, int gradeId, Double experience, String avatar, String sex, Boolean enabled, Boolean accountNoExpired, Boolean credentialsNoExpired, Boolean accountNoLocked) {
        this.userId = userId;
        this.username = username;
        this.password = password;
        this.email = email;
        this.gradeId = gradeId;
        this.experience = experience;
        this.avatar = avatar;
        this.sex = sex;
        this.enabled = enabled;
        this.accountNoExpired = accountNoExpired;
        this.credentialsNoExpired = credentialsNoExpired;
        this.accountNoLocked = accountNoLocked;
    }

    public Integer getUserId() {
        return userId;
    }

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }

    public String getEmail() {
        return email;
    }

    public int getGradeId() {
        return gradeId;
    }

    public Double getExperience() {
        return experience;
    }

    public String getAvatar() {
        return avatar;
    }

    public String getSignature() {
        return signature;
    }

    public String getSex() {
        return sex;
    }

    public Boolean getEnabled() {
        return enabled;
    }

    public Boolean getAccountNoExpired() {
        return accountNoExpired;
    }

    public Boolean getCredentialsNoExpired() {
        return credentialsNoExpired;
    }

    public Boolean getAccountNoLocked() {
        return accountNoLocked;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public void setGradeId(int gradeId) {
        this.gradeId = gradeId;
    }

    public void setExperience(Double experience) {
        this.experience = experience;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public void setSignature(String signature) {
        this.signature = signature;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public void setEnabled(Boolean enabled) {
        this.enabled = enabled;
    }

    public void setAccountNoExpired(Boolean accountNoExpired) {
        this.accountNoExpired = accountNoExpired;
    }

    public void setCredentialsNoExpired(Boolean credentialsNoExpired) {
        this.credentialsNoExpired = credentialsNoExpired;
    }

    public void setAccountNoLocked(Boolean accountNoLocked) {
        this.accountNoLocked = accountNoLocked;
    }

    @Override
    public String toString() {
        return "User{" +
                "userId=" + userId +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", email='" + email + '\'' +
                ", gradeId='" + gradeId + '\'' +
                ", experience=" + experience +
                ", avatar='" + avatar + '\'' +
                ", sex='" + sex + '\'' +
                ", enabled=" + enabled +
                ", accountNoExpired=" + accountNoExpired +
                ", credentialsNoExpired=" + credentialsNoExpired +
                ", accountNoLocked=" + accountNoLocked +
                '}';
    }
}
